package net.molchat.android.cont;


import net.molchat.android.core.FromBytes;
import net.molchat.android.core.ToBytes;
import android.util.Log;


// ============================================================= Контакт-комната
public class ContRoom extends ContGraph {

//==================================================================== Константы
public static final int UNKNOWN = 0;
public static final int NAME = 1;
public static final int DESCR = 2;
public static final int PASS = 3;
public static final int RULES = 4;
public static final int ID = 5;
public static final int ONE_TOT = 6;
public static final int ONE_MEN = 7;
public static final int ONE_WOM = 8;
public static final int ONE_ALL = 9;
public static final int MESS = 11;


//======================================================================= Статус
public static final int OFFLINE = 0; // Не подключен
public static final int HIDDEN = 2; // Невидим
public static final int IMP_ONLY = 6; // Только важное
public static final int ONLINE = 20; // В сети


// ======================================================== Информация о комнате
public String mess; // Сообщение о вошедшем/вышедшем 
public int oneTot = -1; // Кол-во подключенных контактов
public int oneMen; // Кол-во подключенных сейчас парней
public int oneWom; // Кол-во подключенных сейчас девушек
public String rules; // Правила


// ======================================================= Глобальные переменные

// Разное
public String titText = "Комната"; // Заголовок комнаты


// =============================================================== Инициализация
public ContRoom() {

}


public ContRoom(byte[] source) {

	fromByte(source);
}


// ================================================ Преобразование в байт-массив
public byte[] toByte() {

	ToBytes ser = new ToBytes();
	ser.writeInt(NAME);
	ser.writeString(name);
	return ser.getResult();
}


//======================================================= Преобразовать в строку
public String toString() {

	return name + ", oneTot=" + oneTot + ", oneMen=" + oneMen + ", oneWom="
			+ oneWom + ", birthDay=" + birthDay + "." + birthMon + "." + birthYear
			+ ", descr=" + descr + ", net.molchat.android.mess=" + mess + ", rules="
			+ rules;
}


// ================================================== Заполнение из байт-массива
public void fromByte(byte[] content) {

	try {
		FromBytes ser = new FromBytes(content, 0);

		while (ser.pt < content.length) {
			int type = ser.readInt(); // Тип читаемого блока
			switch (type) {
				case NAME:
					name = ser.readString();
					break;
				case DESCR:
					descr = ser.readString();
					break;
				case RULES:
					rules = ser.readString();
					break;
				case ONE_ALL: // Кол-во подключенных сейчас контактов (сводная)
					oneTot = ser.readInt();
					oneMen = ser.readInt();
					oneWom = ser.readInt();
					break;
				case ONE_TOT: // Кол-во подключенных сейчас контактов
					oneTot = ser.readInt();
					break;
				case ONE_MEN: // Кол-во подключенных сейчас контактов
					oneMen = ser.readInt();
					break;
				case ONE_WOM: // Кол-во подключенных сейчас контактов
					oneWom = ser.readInt();
					break;
				case MESS:
					mess = ser.readString();
					break;
				default:
					Log.e("RoomInfo.unserialize", "Неизвестный тип записи: " + type);
			}
		}
	} catch (Exception e) {
		Log.e("RoomInfo.unserialize", "Ошибка заполнения инфо из байт-массива", e);
	}

}


public String getTitText() {

	return titText;
}


}
